// pages/home.js
Page({

    /**
     * 页面的初始数据[页面中用到的值都放在这里]
     */
    data: {
     wh: 0,
     position:'back',
     src:'', //照片路径,
     token:""
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
     const sysInfo =    wx.getSystemInfoSync()
     console.log(sysInfo)
     this.setData({
         wh: sysInfo.screenHeight
     })
    },
/**
 * 切换前置后置摄像头
 */
    reverse(){
        console.log("摄像头设置",this.data.position)
        this.setData({
            position : this.data.position  === 'back'?'front':'back'
        })
    },

    /**
     * 点击拍照
     */
    takePhoto() {
        var ctx = wx.createCameraContext()
        ctx.takePhoto({
          quality: 'high',
          success: (res) => {
              console.log(res.tempImagePath)
            this.setData({
              src: res.tempImagePath
            },()=>{
                //获取颜值数据
                this.getFaceInfo()
            })
          }
        })
      },

      /**
       * 选择照片
       */
      choosePhoto(){
        var _this=  this;
        wx.chooseImage({
            count: 1,
            sizeType: ['original'],
            sourceType: ['album'],
            success (res){
              // tempFilePath可以作为img标签的src属性显示图片
              const tempFilePaths = res.tempFilePaths
              if(res.errMsg === 'chooseImage:ok' && res.tempFilePaths.lenth !== 0){
                _this.setData({
                    src: res.tempFilePaths[0]
                },()=>{
                    //获取颜值数据
                    _this.getFaceInfo()
                })
            
              }
            }
          })
      },
   
      /**
       * 重选照片
       */
      reChoose(){
          this.setData({
              src:''
          })
          console.log("重选照片的src",this.data.src)
      },

  /**
   * 获取颜值
   */
  getFaceInfo(){
      //1.先获取token
     //2. 拼参数
      //3.请求接口
      wx.request({
        url: 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=CeJ9dGuRoZ1lTC62BeYMFRMl&client_secret=YWF6h5qxYdchOvCPct7Y1V40bdVecSla',
        method:'POST',
        success: (res) => {
           console.log("打印token信息",JSON.stringify(res))
           console.log("打印token信息",JSON.stringify(res.data.access_token))
           this.setData({
               token: res.data.access_token
           },()=>{
               //处理参数
               this.processParams()
           })
        }
      })

  },

//处理参数
processParams(){
    const params = {
        image:'',
        image_type:"BASE64",
        //希望颜值检测完毕后， 服务器返回哪些颜值数据
        //age,expression,face_shape,gender,glasses,landmark,landmark150,quality,eye_status,emotion,face_type,mask,spoofing
        face_field:'age,gender,beauty,expression,glasses,emotion'

    };
    //根据图片路径，把图片转为base64格式，然后，赋值给params。image
    //到小程序官网api文档里找方法
   const fileManager =  wx.getFileSystemManager();
   fileManager.readFile({
    filePath: this.data.src,
    encoding: 'base64',
    success: (res)=>{
        //根据路径将图片转换为base64
        console.log("转换后的base64",res.data)
        params.image = res.data
        console.log("入参",JSON.stringify(params))

        //3. 发送请求， 检测颜值数据
        this.testFace(params);
    }
   })
},

//发送请求
testFace(params){
    wx.request({
      url: 'https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token='+this.data.token,
      method:'POST',
      header:{
          'Content-Type':'application/json'
      },
      data: params,
      success:(res)=>{
          console.log("打印人脸识别返回的",JSON.stringify(res))
          //由于目前个人认证的，人脸识别功能没有免费使用，所以无法获取res中的返回参数
          //不过实现过程就是按这个步骤来
      }
    })
},


    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})